package main

import "fmt"

func main() {
	var a int
	//指针的定义
	var p *int
	p = &a
	*p = 80 //表示指针p赋值为80,加*号让指针指向值
	fmt.Println(*p)
	//不加*输出地址
	fmt.Println(p)
	//或者
	fmt.Println(p, *p)
	//类型的默认值
	//int 默认值为nil 表示为空
	var moren *int
	fmt.Println(moren)
	////野指针 指针变量指向一个未知空间，会报错
	//var e *int
	//*e=80 //没有指向，直接操作
	//fmt.Println(*e)
	//new函数,相当于C语言中的动态分配空间，与C语言不同的是不需要手动释放

	var b *int
	b = new(int)
	*b = 10
	fmt.Println(b, *b)
	//自动推导
	q := new(int)
	*q = 100
	fmt.Println(q, *q)
}
